#include "canbus/message.h"

/**
 * @namespace canbus
 * @brief canbus
 */
namespace canbus {

/**
 * @class CanMsgEncoderFLReq
 * @brief Concrete can message that stores Front Left encoder request information
 */
class CanMsgEncoderFLReq: public CanMsg {
public:
  CanMsgEncoderFLReq():
  CanMsg() {
    id_ = 0x0c121007;
    SetByte(0x01, 0);
    SetByte(0x00, 1);
    SetByte(0x11, 2);
    SetByte(0x05, 3);
    SetByte(0x01, 4);
    SetByte(0x01, 5);
    SetByte(0x01, 6);
    SetByte(0x01, 7);    
  }
  CanMsgEncoderFLReq(uint8_t* value): 
  CanMsg(value) {
    id_ = 0x0c121007;
    SetByte(0x01, 0);
    SetByte(0x00, 1);
    SetByte(0x11, 2);
    SetByte(0x05, 3);
    SetByte(0x01, 4);
    SetByte(0x01, 5);
    SetByte(0x01, 6);
    SetByte(0x01, 7);
  }

  virtual ~CanMsgEncoderFLReq() = default;

  void UpUpdateData() {};
  template <typename T>
  void DownUpdate(const T& input_data) {}

  static const int32_t ID;
  static const std::string NAME;

  friend class CanbusHandler;
};

}

